from dataclasses import dataclass


# 使用dataclass装饰器，可以自动生成 __init__、__repr__ 等方法，简化类定义
@dataclass
class Student:
    stu_id: str  # 学号
    name: str  # 姓名
    phone: str  # 手机号
    wx: str = ""  # 微信号，默认是空字符串
    qq: str = ""  # QQ号，默认是空字符串
    gender: str = ""  # 性别，默认是空字符串

    def __str__(self):
        """
        当打印对象时显示的信息，更加人性化，方便展示
        """
        return f"[{self.stu_id}] {self.name} ({self.gender}) - 手机: {self.phone}，微信: {self.wx}，QQ: {self.qq}"

    def to_dict(self):
        """
        将对象转换为字典格式，便于展示或后期转换成 JSON 等格式
        """
        return {
            "学号": self.stu_id,
            "姓名": self.name,
            "手机号": self.phone,
            "微信": self.wx,
            "QQ": self.qq,
            "性别": self.gender
        }


if __name__ == '__main__':
    stu1 = Student(stu_id="1", name="吴亦凡", phone="110", wx="wx001", qq="qq01", gender="male")
    print(stu1)
